Computer networks are a collection of computing systems that operate on the principle that one computing system representing one node in the network can communicate with another computing system representing another node in the network. One of the primary purposes for such communication is often information retrieval. For instance, one network node (i.e., a client) will issue a request for a resource from another network node (i.e., a server).
In HyperText Transport Protocol (HTTP), if a server does not have the requested resource or for some other reason cannot process the message, the server might determine if there are other network nodes that can process the message. In that case, the server might send an HTTP redirect response specifying instructions whereby the client might redirect its request elsewhere. The HTTP redirect response includes 1) information specifying that the response is a redirect, 2) a code indicating the type of the redirect, and 3) a destination identifier to which the client should redirect the request. This redirect may be done automatically without the user having to expend effort.
Additionally, redirection is frequently used to stitch together application services that have distributed control or have multiple, linked resources, such as as separate services for resource access control and resource data. Examples of these distributed services connected by redirects are typified by load balancers and directory-based routers.
From a user perspective, redirection is advantageous since redirection permits leniency regarding what addresses may be used to acquire a resource. If the browser knows an address that was once valid for the resource, and has been appropriate redirected to the updated address, the user will still be permitted access. Redirection is also beneficial from a service operations perspective, since it allows the service to use different addresses for a service with little or no ramifications for the user.